This invention relates generally to the field of methods for optimization, and in preferred embodiments relates more particularly to the field of genetic and evolutionary algorithms (GAs). The invention further relates generally to computer programs and computer-aided methods for optimization.
Many real-world problems have enormously large potential solution sets that require optimization. Optimal designs for bridges, potential trajectories of asteroids or missiles, optimal molecular designs for pharmaceuticals, optimal fund distribution in financial instruments, and the like are just some of the almost infinite variety of problems that can provide a large set of potential solutions that need to be optimized.
One type of optimization method is the genetic or evolutionary algorithm (GA). In GAs, individual variables are analogous to “genes”, and a particular solution to an optimization problem, including a plurality of variables, is analogous to a “chromosome”. The variables may be, for example: bits; discrete, fixed-length representations; vectors; strings of arbitrary length; program codes; etc. Other types of optimization methods include, but are not limited to, evolutionary computing, operations research (OR), global optimization methods, meta-heuristics, artificial intelligence and machine learning techniques, etc., and methods of the present invention may be applicable to one or more of these optimization methods as well.
The goal with GAs is to optimize a solution or at least produce an acceptable solution according to desirable criteria. Generally, GA methods follow a scheme (sometimes referred to as initialization) of taking a set of potential solutions (a solution set or population) from a solution space, evaluating them using some scoring metric (a fitness evaluation), identifying desirable or better solutions from the set using a scheme, and determining if completion criteria are satisfied. If the criteria are satisfied, the optimization ends. If not, a new solution set is generated or evolved, often based on the selected desirable solutions, and the method is repeated. The new solution set may replace some or all of the previous solution set. Alternatively or additionally, a determination of whether completion criteria are satisfied can occur after generation of the new solution set. Iterations (epochs) continue until completion criteria are satisfied. Often, this occurs when generated solutions converge around an optimal or acceptable solution.
Those knowledgeable in the art will appreciate that “fitness” generally refers to how good a candidate solution is with respect to the problem at hand. Fitness may also be thought of as solution quality, and fitness evaluation therefore may be thought of as solution quality assessment, a function evaluation, or an objective value evaluation. Fitness evaluation may be, for example, objective, subjective (e.g., by a human), and/or via a vector of evaluations (e.g., multiobjective optimization).
Crossover and mutation are two known methods for generating or evolving a new solution set from selected desirable solutions in GAs. Generally, in crossover, parts of two or more selected desirable solutions are recombined in some way to generate new solutions. In mutation, on the other hand, one or more variables within a selected desirable solution are altered in some way to generate new solutions.
Through multiple iterations of evaluating individuals within a population for fitness, and through generating new populations based at least partly on “survival of the fittest” for solutions, GAs can be used to provide acceptable or optimal solutions for a variety of problems. However, concerns exist regarding the use of GAs and other optimization methods.
As one example, for complex or large problems, iterations may continue for relatively long periods, and may otherwise consume considerable computational resources. A solution space can reach millions, hundreds of millions, billions, or even tens of digits or more of potential solutions for optimization. For example, when optimizing a problem that has a 30-bit solution, the potential solution space is a billion. Under these circumstances, random searching or enumeration of the entire solution space is not practical.
Another concern is the amount of resources required for the fitness evaluation step. When faced with a large-scale problem, the step of evaluating the fitness or quality of all of the solutions can demand high computer resources and execution times. To improve efficiency, fitness evaluation may be handed off to a computational procedure to determine fitness. However, for large-scale problems, the task of computing even a sub-quadratic number of function evaluations can be daunting. This is especially the case if the fitness evaluation is a complex simulation, model, or computation. The fitness evaluation step often presents a time-limiting “bottleneck” on performance that makes use of some conventional GAs impractical for some applications.
Thus, a number of optimization techniques for GAs have been employed in the art having at least a partial goal of reducing the number of fitness evaluations necessary to achieve convergence. Optimizations have led to so-called “competent” GAs, which are GAs that solve large, hard problems quickly, reliably, and accurately.
One exemplary optimization technique is based on a consideration that certain variables within a solution set may be linked together in some way, and an optimal solution may be found more quickly by employing this consideration during generation of new solution sets. As a nonlimiting example, a combustion engine could be described in very simple terms as elements of one or more combustion chambers, one or more pistons, a transmission, an ignition source, and a fuel supply. Some of these components are linked to others. The pistons, for instance, are linked to the combustion chambers and the drive train, and the fuel supply and ignition source are linked to the combustion chamber.
Very generally, by considering this linkage of variables, a design problem may be decomposed into quasi-separate subproblems. Each subproblem may be solved using facetwise analysis and little models, providing subsolutions. These subsolutions may then be integrated using techniques such as dimensional analysis, probabilistic reasoning, or higher order little models.
Linked variables may be thought of as forming “module” or, as referred to herein, “building blocks (BBs)”. Understanding that most GAs process building blocks, and using this understanding to solve problems, can aid in design of GAs. In certain embodiments, once identified in some way, such BBs may be manipulated in groups to provide new populations. As one non-limiting example, mutation may be performed as a BB-wise operation, as opposed to a simple bit-wise operation.
Simple selectorecombinative (selection plus recombination) GAs can solve BB-easy problems like the bit-counting problem in subquadratic time over a wide range of parameters (e.g., population size, selection pressure, crossover probability). Viewed in GA parameter space, a simple GA has a large sweet spot, making it easy to set up and solve easy problems. However, as problems get harder, the sweet spot becomes smaller and smaller even if the population size is increased nominally to account for the added difficulty. In fact, it has been shown that to solve harder problems using simple, fixed recombination operators requires population sizes that grow exponentially, even with fixes such as elitism, niching, and mating restriction.
Thus, another type of optimization technique uses problem decomposition to generate new populations, in which the problem decomposition employs operators that are able to capture and adapt to an underlying problem structure. By building a distribution model, and gaining insight into the structure of the problem, particularly the interactions between variables, it becomes easier to determine an optimal or acceptable solution. Such nontraditional GAs can recombine BBs to solve what have been called nearly decomposable problems, quickly, accurately, and reliably. Some solvers do decomposition explicitly, such as by building a model, while others do implicit decomposition, such as by gathering variables that are related to one another. Recombination operators may include, for example, perturbation techniques, linkage adaptation techniques, probabilistic model building techniques, and other techniques. Mutation operators may include, for example, a random walk locally around a solution, evolutionary strategies (ESs), and other operators. Some GAs using problem decomposition techniques can solve decomposable problems within a low-order polynomial number of fitness evaluations.
One of the more promising optimization techniques is the class of methods known as probabilistic model-building genetic algorithms (PMBGAs), also known as estimation distribution algorithms (EDAs). In these methods, an explicit probabilistic model is built from the best solutions, and the model is then used to construct new instances of possibly better strings. PMBGAs preferably maintain linking of variables by considering such linkage in the probabilistic model. Very generally, a typical PMBGA often includes: a scheme to select the better individuals; an assumed probabilistic model or a class of probabilistic models; a class-selection metric; a search mechanism for choosing a particular model from the admissible class; and a scheme to generate new individuals according to the selected model.
As just one of many examples, in the compact genetic algorithm (cGA), a population of bit strings is modeled by a probability vector p[i], where the probability value represents the probability of being a one. Other, nonlimiting examples of PMBGAs include population incremental learning (PBIL) algorithm, univariate marginal distribution algorithm (UMDA), Bivariate Marginal Distribution Algorithm (BMDA), Mutual Information Maximization for Input Clustering (MIMIC), Combining Optimizers with Mutual Information Trees (COMIT), Bayesian optimization algorithm (BOA) (and variants thereof), extended compact genetic algorithm (eCGA), factorized distribution algorithm (FDA), and others.
Combining probabilistic model building techniques with techniques that are able to capture and adapt to an underlying problem structure can often lead to competent GAs. Exemplary competent GAs known in the art include, as non-limiting examples, the Bayesian optimization algorithm (BOA), and the extended compact genetic algorithm (eCGA). GAs that build model structure may be competent GAs, such as, but not limited to, eCGAs and BOA. Those employing a fixed structure, such as cGA, PBIL, and UMDA, generally are not competent GAs. For example, eCGAs and BOAs (or variants thereof) have been quite successful in tackling large difficulty problems with little or no prior problem knowledge across a spectrum of problem areas.
Thus, some problems that were impractical to solve using GAs became tractable by using competent GAs. However, for large-scale problems, even a low-order polynomial number of fitness evaluations can be very demanding on available time and/or computing resources. For example, polynomial convergence in large problems may still leave a solver with a practicality gap between the time available and the time required to obtain sufficiently high quality solutions. Thus, to date, known optimization methods have substantial limitations, and accordingly, GAs and other optimization methods have been limited in their use for solving real-world problems.